package dao.hero;


public class Zhihai extends BaseHero {
	private int num;
	private int hurry;
	public Zhihai()
    {
       this.name="志海";
       this.ID = 1341;
       this.HP = 932;
       this.maxHP=HP;
       this.ATT = 99;      
       this.DEF = 32;     
       this.DEX = 76;   
       this.blue = 210;
       this.sname1 = "普通攻击";
       this.sname2 = "旋风枪法";
       this.sname3 = "嗜血枪法";
       this.sname4 = "惠州无影腿";
       this.describe_skill1 = "技能详解：普通攻击，造成一定的物理伤害";
       this.describe_skill2 = "技能详解：耗蓝40，快如风，急如雷，造成（攻击+敏捷*1.5）伤害";
       this.describe_skill3 = "技能详解：耗蓝45，造成伤害，并吸取伤害的50%作为血量回复；被动所有技能均可以吸收10%的伤害回复血量";
       this.describe_skill4 = "技能详解：耗蓝110，大招，踢出敌人内伤为止，造成敌人最大血量的22%的伤害并使之防御力永久下降20%";
       this.describe_hero = "人物介绍：长得帅，却没人发现，素有小长腿之称，英雄定位为高攻高防，战士型英雄";
       this.myluck= "良好";
       num=99;
       headpath="image\\"+"zhhead.png";
       bodypath="image\\"+"zhbody.png";
       //head=Toolkit.getDefaultToolkit().getImage("image\\"+"xlhead.jpg");
}
	public void attack(int skill, BaseHero enemy) {
		// TODO Auto-generated method stub
		if(skill==1){
			skill1(enemy);
		}else if(skill==2){
			skill2(enemy);
		}else if(skill==3){
			skill3(enemy);
		}else if(skill==4){
			skill4(enemy);
		}
		blue+=15;
	}


	public void skill1(BaseHero enemy) {
		// TODO Auto-generated method stub
		blood=true;//掉血
		BaseHero.luck=(int)(Math.random()*10);//运气值随机数
		enemy.setLastHP(enemy.getHP());//重置上一次血量
		if((BaseHero.luck<2||isDodge(enemy))&&!noDodge){
			tip="普通攻击,"+enemy.getName()+"运气太好了，闪开了这次攻击";
		}else if(BaseHero.luck>7){
			hurry=(int) ((ATT*2+BaseHero.luck*5)*(1-enemy.getDEF()/100));
			enemy.setHP(enemy.getHP()-hurry);
			setHP(HP+hurry*0.1);//吸血
			tip=name+"状态不错，使出了会心一击，造成"+enemy.getName()+hurry+"点伤害，并吸取了"+(int)(hurry*0.1)+"点血";
		}else {
			hurry=(int) ((this.ATT+BaseHero.luck*4)*(1-enemy.getDEF()/100));
			enemy.setHP(enemy.getHP()-hurry);
			setHP(HP+hurry*0.1);//吸血
			tip=name+"普通攻击，造成"+enemy.getName()+hurry+"伤害，并吸取了"+(int)(hurry*0.1)+"点血";
		}
	}

	public void skill2(BaseHero enemy) {
		// TODO 耗蓝40，快如风，急如雷，造成（攻击+敏捷*1.5）伤害
		blood=true;//掉血
		enemy.setLastHP(enemy.getHP());// 重置上一次血量

		if ((blue - 40) >= 0) {
			if (!noDodge && isDodge(enemy)) {
				// 闪避了
				tip = "旋风枪法," + enemy.getName() + "太敏捷了，竟然闪开了这次攻击";
			} else {// 没有闪避
				BaseHero.luck = (int) (Math.random() * 10);// 运气值随机数
				hurry = (int) ((ATT + DEX * 1.5) * (1 - enemy.getDEF() / 100));
				enemy.setHP(enemy.getHP() - hurry);
				setHP(HP + hurry * 0.1);// 吸取10%的血
				tip = name + "使出了旋风枪法，快如风，急如雷，造成" + hurry + "点伤害，并吸取了" + (int)(hurry
						* 0.1) + "点血";
			}

			blue -= 40;
		} else {
			skill1(enemy);
		}
		
		
	}

	public void skill3(BaseHero enemy) {
		// TODO 耗蓝45，造成伤害，并吸取伤害的25%作为血量回复；被动所有技能均可以吸收10%的伤害回复血量
		blood=true;//掉血
		enemy.setLastHP(enemy.getHP());// 重置上一次血量

		if ((blue - 45) >= 0) {
			if (!noDodge && isDodge(enemy)) {
				// 闪避了
				tip = "嗜血枪法," + enemy.getName() + "太敏捷了，竟然闪开了这次攻击";
			} else {// 没有闪避
				BaseHero.luck = (int) (Math.random() * 4) + 1;// 运气值随机数
				hurry = (int) ((BaseHero.luck * 10 + ATT) * (1 - enemy.getDEF() / 100));
				enemy.setHP(enemy.getHP() - hurry);
				setHP(HP + hurry * 0.5);// 吸取50%的血
				tip = name + "使出了失传已久的嗜血枪法，造成" + hurry + "点伤害，并吸取了" + (int)(hurry
						* 0.5) + "点血";
				
			}
			blue -= 45;

		} else {
			skill1(enemy);
		}
		
		
		
	}

	public void skill4(BaseHero enemy) {
		// TODO 耗蓝110，大招，踢出敌人内伤为止，造成敌人最大血量的20%的伤害并使防御力永久下降20%
		
		blood=true;//掉血
		enemy.setLastHP(enemy.getHP());// 重置上一次血量

		if ((blue - 110) >= 0) {
			if (!noDodge && isDodge(enemy)) {
				// 闪避了
				tip = "大招，惠州无影腿," + enemy.getName() + "太敏捷了，竟然闪开了这次攻击";
			} else {// 没有闪避
				hurry = (int) (enemy.getMaxHP() * 0.22);
				enemy.setHP(enemy.getHP() - hurry);// 更新血量
				setHP(HP + hurry * 0.1);// 吸取10%的血
				int enemyDEF = (int) (enemy.getDEF() * 0.2);// 下降的防御
				enemy.setDEF(enemy.getDEF() - enemyDEF);// 防御下降20%
				tip = name + "放大招了，惠州无影腿！造成" + hurry + "点伤害，并吸取了" + hurry * 0.1
						+ "点血，" + "同时" + enemy.getName() + "防御下降了" + enemyDEF;
				
			}
			blue -= 110;
		} else {
			skill1(enemy);
		}
		
		
		
	}
	public boolean isDodge(BaseHero enemy){
		//当前敏捷比敌人高，增加闪避率,否则降低闪避率
		double dodge=enemy.getDEX()*0.3+(enemy.getDEX()-DEX)*0.25;
		System.out.println("当前闪避率"+dodge);
		int rand=(int)(Math.random()*100);//运气值随机数
		if(rand<dodge){
			System.out.println("闪避了"+rand);
			return true;
		}else{
			System.out.println("闪不开"+rand);
			return false;
		}    
	}
}